<?xml version="1.0" standalone="yes"?>
<html><head><title>XML::LibXML::Document - DOM Document Class</title><link rev="made" href="mailto:root@updates.mandrakesoft.com"/></head><body><!-- INDEX BEGIN --><ul><li><a href="#NAME">NAME</a></li><li><a href="#SYNOPSIS">SYNOPSIS</a></li><li><a href="#DESCRIPTION">DESCRIPTION</a><ul><li><a href="#Methods">Methods</a></li></ul></li><li><a href="#SEE_ALSO">SEE ALSO</a></li><li><a href="#VERSION">VERSION</a></li></ul><!-- INDEX END --><hr/><p/><h1><a name="NAME">NAME</a></h1><p>
XML::LibXML::Document - DOM Document Class

</p><p/><hr/><h1><a name="SYNOPSIS">SYNOPSIS</a></h1><p/><pre>  use XML::LibXML::Document;
</pre><p/><pre>  $dom = XML::LibXML::Document-&gt;new( $version, $encoding );
  $dom = XML::LibXML::Document-&gt;createDocument( $version, $encoding );
  $strEncoding = $doc-&gt;getEncoding();
  $strVersion = $doc-&gt;getVersion();
  $docstring = $dom-&gt;toString([$format]);
  $bool = $dom-&gt;is_valid();
  $root = $dom-&gt;getDocumentElement($name, $namespace );
  $dom-&gt;setDocumentElement( $root );
  $element = $dom-&gt;createElement( $nodename );
  $element = $dom-&gt;createElementNS( $namespaceURI, $qname );
  $text = $dom-&gt;createTextNode( $content_text );
  $comment = $dom-&gt;createComment( $comment_text );
  $attrnode = $doc-&gt;createAttribute($name [,$value]);
  $attrnode = $doc-&gt;createAttributeNS( namespaceURI, $name [,$value] );
  $cdata = $dom-&gt;create( $cdata_content );
  $document-&gt;importNode( $node [, $move] );
</pre><p/><hr/><h1><a name="DESCRIPTION">DESCRIPTION</a></h1><p>
The Document Class is the result of a parsing process. But sometimes it is
necessary to create a Document from scratch. The DOM Document Class
provides functions that are conform to the DOM Core naming style. It
inherits all functions from <em>XML::LibXML::Node</em> as specified in DOM Level2. This enables to access the nodes beside the
root element on document level - a <em>DTD</em> for example. The support for these nodes is limited at the moment, so I
would recommend, not to use <em>node</em> functions on <em>documents</em>. It is suggested that one should always create a node not bound to any
document. There is no need of really including the node to the document,
but once the node is bound to a document, it is quite safe that all strings
have the correct encoding. If an unbound textnode with an iso encoded
string is created (e.g. with $CLASS-&gt;new()), the <em>toString</em> function may not return the expected result. This seems like a limitation
as long UTF8 encoding is assured. If iso encoded strings come into play it
is much safer to use the node creation functions of <strong>XML::LibXML::Document</strong>.

</p><p/><hr/><h2><a name="Methods">Methods</a></h2><dl><dt><strong><a name="item_new">new</a></strong></dt><dd><p>
alias for <code>createDocument()</code></p></dd><dt><strong><a name="item_createDocument">createDocument</a></strong></dt><dd><p>
The constructor for the document class. As Parameter it takes the version
string and (optionally) the ecoding string. Simply calling <strong>createDocument</strong> will create the document:

</p><p/><pre>  
  &lt;?xml version=&quot;your version&quot; encoding=&quot;your encoding&quot;?&gt;
</pre><p>
Both parameter are optional. The default value for <strong>$version</strong> is <em>1.0</em> , of course. If the <strong>$encoding</strong> parameter is not set, the encoding will be left unset, which means UTF8 is
implied (and set). The call of <strong>createDocument</strong> without any parameter will result the following code:

</p><p/><pre>  
  &lt;?xml version=&quot;1.0&quot;?&gt;
</pre></dd><dt><strong><a name="item_getEncoding">getEncoding</a></strong></dt><dd><p>
returns the encoding string of the document

</p></dd><dt><strong><a name="item_getVersion">getVersion</a></strong></dt><dd><p>
returns the version string of the document

</p></dd><dt><strong><a name="item_toString">toString</a></strong></dt><dd><p><strong>toString</strong> is a deparsing function, so the DOM Tree can be translated into a string,
ready for output. The optional <strong>$format</strong> parameter sets the indenting of the output. This parameter is expected to
be an <em>integer</em> value, that specifies the number of linebreaks for each node. For more
information about the formatted output check the documentation of <em>xmlDocDumpFormatMemory</em> in <em>libxml2/tree.h</em> .

</p></dd><dt><strong><a name="item_is_valid">is_valid</a></strong></dt><dd><p>
Returns either TRUE or FALSE depending on the DOM Tree is a valid Document
or not.

</p></dd><dt><strong><a name="item_getDocumentElement">getDocumentElement</a></strong></dt><dd><p>
Returns the root element of the Document. A document can have just one root
element to contain the documents data.

</p></dd><dt><strong><a name="item_setDocumentElement">setDocumentElement</a></strong></dt><dd><p>
This function enables you to set the root element for a document. The
function supports the import of a node from a different document tree.

</p></dd><dt><strong><a name="item_createElement">createElement</a></strong></dt><dd><p>
This function creates a new Element Node bound to the DOM with the name <em>$nodename</em> .

</p></dd><dt><strong><a name="item_createElementNS">createElementNS</a></strong></dt><dd><p>
This function creates a new Element Node bound to the DOM with the name <em>$nodename</em> and placed in the given namespace.

</p></dd><dt><strong><a name="item_createTextNode">createTextNode</a></strong></dt><dd><p>
As an equivalent of <strong>createElement</strong> , but it creates a <strong>Text Node</strong> bound to the DOM.

</p></dd><dt><strong><a name="item_createComment">createComment</a></strong></dt><dd><p>
As an equivalent of <strong>createElement</strong> , but it creates a <strong>Comment Node</strong> bound to the DOM.

</p></dd><dt><strong><a name="item_createAttribute">createAttribute</a></strong></dt><dd><p>
Creates a new Attribute node. This function is rather useless at the
moment, since there is no setAttributeNode function defined in <em>XML::LibXML::Element</em> , yet.

</p></dd><dt><strong><a name="item_createAttributeNS">createAttributeNS</a></strong></dt><dd><p>
Creates an Attribute bound to a namespace.

</p></dd><dt><strong><a name="item_createCDATASection">createCDATASection</a></strong></dt><dd><p>
Similar to createTextNode and createComment, this function creates a
CDataSection bound to the current DOM.

</p></dd><dt><strong><a name="item_importNode">importNode</a></strong></dt><dd><p>
If a node is not part of a document, it can be imported to another
document. As specified in DOM Level 2 Specification the Node will not be
altered or removed from its original document by default. ( <em>$node-</em><code>cloneNode(1)&gt;</code> will get called implicitly). Sometimes it is
necessary to <em>move</em> a node between documents. In such a case the node will not be copied, but
removed from the original document.

</p></dd></dl><p/><hr/><h1><a name="SEE_ALSO">SEE ALSO</a></h1><p>
XML::LibXML, XML::LibXML::Element, XML::LibXML::Text, XML::LibXML::Attr,
XML::LibXML::Comment

</p><p/><hr/><h1><a name="VERSION">VERSION</a></h1><p>
0.90_a

</p></body></html>
